<?php
//------------------------------------------------------------ Contraintes d'accès de la page

	// on vérifie que cette page est appelée à partir de l'index et que l'utilisateur est autorisé
	if(isset($_SESSION)&& ($GLOBALS['USER']['level'] >= 3 || $GLOBALS['USER']['admin'])){
   
   $erreur = false;
   
   // si le fichier existe
   // on assigne les données à des emailiables pour plus de confort
      if (isset($_GET['f'])) {
         $nomfichier =  $_GET['f'];
         if (isset($_GET['fili'])){
            $firstLine = $_GET['fili'];  
         }else {
            $firstLine = 1;
         }
         if (isset($_GET['lali'])){
            $lastLine = $_GET['lali']; 
         }
         
         $query_recuperation_structures = "SELECT ";
      
         if(isset($_GET['verbose'])){
            $verbose = $_GET['verbose'];
         }
      
      // on récupère tous les types de structure et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons   
         if (isset($_GET['type'])) {

            $colType = $_GET['type']; // on sait quelle colonne correspond aux types
            
         }             
         $query_recuperation_types = "SELECT DISTINCT NOMTYPESTRUCTURE FROM type_structure";
               
         $result_recuperation_types =  mysql_query($query_recuperation_types, $connexion) or logError("RECUPERATION TYPES STRUCTURE-".$query_recuperation_types."-".mysql_error());
         $types = array(); // on créé un tableau qui contient la liste des types
         $nb_types = 0;
         while($line_recuperation_types = mysql_fetch_assoc($result_recuperation_types)){
            $type[$nb_types] = strtolower(trim($line_recuperation_types['NOMTYPESTRUCTURE']));
            $nb_types++;
         }
               
         mysql_free_result($result_recuperation_types);
            
            
         
      // on récupère toutes les sous-genres et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons
         if (isset($_GET['numcor'])) {
         
            $colNumcor = $_GET['numcor'];
            
           
            $query_recuperation_structures .= " CODEJB";
            
         } else {
         
            $erreur = true;
            
         }
     
         if (!$erreur) {
         // on récupère tous les noms des structures et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons   
            if (isset($_GET['nom'])) {
            
               $colNom = $_GET['nom']; // on sait quelle colonne correspond aux noms
               
               $query_recuperation_structures .= ",NOMSTRUCTURE ";

            }
            
            // on récupère tous les noms des structures et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons   
            if (isset($_GET['nom2'])) {
            
               $colNom2 = $_GET['nom2']; // on sait quelle colonne correspond aux noms

            }
            
            // on récupère toutes les genres et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons  
            if (isset($_GET['adr'])) {
            
               $colAdresse = $_GET['adr'];
               
               $query_recuperation_structures .= ",ADRESSESTRUCTURE ";

            }
            
            // on récupère toutes les genres et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons  
            if (isset($_GET['adr2'])) {
            
               $colAdresse2 = $_GET['adr2'];

            }
            
            
            // on récupère toutes les villes et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons  
            if (!$erreur && isset($_GET['ville']) && isset($_GET['cpost'])) {
               
               $colVille = $_GET['ville'];
               $colCpost = $_GET['cpost'];
               
               $query_recuperation_villes = "SELECT NOMCOMMUNE,CODEPOSTAL FROM commune";
                  
               $result_recuperation_villes =  mysql_query($query_recuperation_villes, $connexion) or logError("RECUPERATION VILLES-".$query_recuperation_villes."-".mysql_error());

               $villes = array(); // on créé un tableau qui contient la liste des villes
               $nb_villes = 0;
               while($line_recuperation_villes = mysql_fetch_assoc($result_recuperation_villes)){
                  $villes[$nb_villes] = strtolower(trim($line_recuperation_villes['NOMCOMMUNE'].$line_recuperation_villes['CODEPOSTAL']));
                  $nb_villes++;
               }
               
               mysql_free_result($result_recuperation_villes);
               
            }
            
            // on récupère toutes les pays et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons  
            if (isset($_GET['pays'])) {
            
               $colPays = $_GET['pays'];
    
               $query_recuperation_pays = "SELECT NOMPAYS FROM pays";
                  
               $result_recuperation_pays =  mysql_query($query_recuperation_pays, $connexion) or logError("RECUPERATION PAYS-".$query_recuperation_pays."-".mysql_error());
                  
               $pays = array(); // on créé un tableau qui contient la liste des pays
               $nb_pays = 0;
               while($line_recuperation_pays = mysql_fetch_assoc($result_recuperation_pays)){
                  $pays[$nb_pays] = strtolower($line_recuperation_pays['NOMPAYS']);
                  $nb_pays++;
               }
               mysql_free_result($result_recuperation_pays);
               
            }
            
            // on récupère toutes les emailiétés et on stock, pour pouvoir comparer avec les entrées et ainsi éviter les doublons  
            if (isset($_GET['email'])) {
        
               $colEmail = $_GET['email'];
               
            }
            
             
            if (isset($_GET['phone'])) {
            
               $colPhone = $_GET['phone'];

            }
            
            if (isset($_GET['fax'])) {
            
               $colFax = $_GET['fax'];

            }
            
            if (isset($_GET['email'])) {
            
               $colEmail = $_GET['email'];

            }
            
            if (isset($_GET['web'])) {
            
               $colWeb = $_GET['web'];

            }
            
            if (isset($_GET['lastC'])) {
            
               $colLastC = $_GET['lastC'];

            }
            
            if (isset($_GET['comm'])) {
            
               $colComm = $_GET['comm'];

            }
            
            $query_recuperation_structures .= "FROM structure";
                  
            $result_recuperation_structures =  mysql_query($query_recuperation_structures, $connexion) or logError("RECUPERATION structures-".$query_recuperation_structures."-".mysql_error());
                  
            $structures = array(); // on créé un tableau qui contient la liste des structures
            $nb_structures = 0;
            while($line_recuperation_structures = mysql_fetch_assoc($result_recuperation_structures)){
               $structures[$nb_structures] = $line_recuperation_structures['CODEJB'];
               echo $structures[$nb_structures]." ";
               $nb_structures++;
            }
            
            mysql_free_result($result_recuperation_structures);
            
            

            if ($ouvre = fopen("import/$nomfichier","r")){
               $count = 1;
               for ($ligne = fgetcsv($ouvre, 0, $_GET['delim']); !feof($ouvre); $ligne = fgetcsv($ouvre, 0, ",")){
                  $afficheS = "<div class=\"showTax\">";
                  $afficheS2 = "<br />";
                  $aAjouter = 1;
                  $recalNom = 0;
               
                  while ($firstLine > $count) {
                     $ligne = fgetcsv($ouvre, 0, ",");
                     $count++;
                  }
               
                  if ((isset($lastLine) && $lastLine >= $count) || !isset($lastLine)){
                  
                     trimTabByKey($ligne);
                     arraytolower($ligne);

                     $query_creation_structures_insert = "INSERT INTO structure(";
                     $query_creation_structures_values = "VALUES(";
                     
                     if(isset($colNom) && $ligne[$colNom] != ""){
                        
                        $afficheS .= $ligne[$colNom]." ";
                        $query_creation_structures_insert .= "NOMSTRUCTURE";
                        $query_creation_structures_values .= "'".mysqlString($ligne[$colNom]);
                        
                     } else {
                        $recalNom = true;
                     }
                     
                     if(isset($colNom2) && trim($ligne[$colNom2]) != ""){
                        
                        $afficheS .= $ligne[$colNom2]." ";
                        
                        if ($recalNom) {
                           $query_creation_structures_insert .= "NOMSTRUCTURE";
                           $query_creation_structures_values .= mysqlString($ligne[$colNom2]);
                        } else {
                           $query_creation_structures_values .= " ".mysqlString($ligne[$colNom2])."'";
                        }
                        
                     } else {
                        if ($recalNom) {
                           if ($aAjouter) {
                              $afficheS2 .= "<b>Cette Structure n'a pas de nom. AJOUT ANNULE</b>";
                           }
                           $aAjouter = 0;
                        } else {
                           $query_creation_structures_values .= "'";
                        }
                     }
                     
                     
                     if($aAjouter && isset($colAdresse) && $ligne[$colAdresse] != ""){

                        $query_creation_structures_insert .= ", ADRESSESTRUCTURE";
                        $query_creation_structures_values .= ", '".mysqlString($ligne[$colAdresse]);
                        
                        if(isset($colAdresse2) && $ligne[$colAdresse2] != ""){
                        
                           $query_creation_structures_values .= " ".mysqlString($ligne[$colAdresse2]);
                        
                        }
                        
                        $query_creation_structures_values .= "'";

                     }
                     
                     if($aAjouter && isset($colNumcor) && $ligne[$colNumcor] != ""){
                        
                        if (!valueIsInTab($structures,$ligne[$colNumcor]) && $ligne[$colNumcor] != 0) {
                           $query_creation_structures_insert .= ", CODEJB";
                           $query_creation_structures_values .= ", ".$ligne[$colNumcor];
                           $structures[$nb_structures] = $ligne[$colNumcor];   
                           
                        }else {
                           if ($aAjouter) {
                              $afficheS2 .= "<b>Cette Structure exite déjà ou une autre structure possède le même numcor. AJOUT ANNULE</b>";
                           }
                           $aAjouter = 0;
                        }

                     } else {
                        if ($aAjouter) {
                           $afficheS2 .= "<b>Cette Structure n'a pas de numcor. AJOUT ANNULE</b>";
                        }
                        $aAjouter = 0;
                     
                     }

                     
                     if($aAjouter && isset($colEmail) && $ligne[$colEmail] != ""){

                           $query_creation_structures_insert .= ", EMAILSTRUCTURE";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colEmail]);
                        
                     }
                     
                     if($aAjouter && isset($colPhone) && $ligne[$colPhone] != ""){

                           $query_creation_structures_insert .= ", TELEPHONESTRUCTURE";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colPhone]);
                           
                     }
                     
                     if($aAjouter && isset($colFax) && $ligne[$colFax] != ""){
                        
                           $query_creation_structures_insert .= ", FAXSTRUCTURE";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colFax]);
                           
                     }
                     
                     if($aAjouter && isset($colWeb) && $ligne[$colWeb] != ""){

                           $query_creation_structures_insert .= ", SITEINTERNET";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colWeb]);
                        
                     }
                     
                     if($aAjouter && isset($colLastC) && $ligne[$colLastC] != ""){
                        
                           $query_creation_structures_insert .= ", DATEDERNIERCONTACT";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colLastC]);
                           
                     }
                     
                     if($aAjouter && isset($colComm) && $ligne[$colComm] != ""){
                        
                           $query_creation_structures_insert .= ", COMMENTAIRE";
                           $query_creation_structures_values .= ", ".mysqlString($ligne[$colComm]);
                           
                     }
                     
                     if($aAjouter && isset($colCpost) && $ligne[$colCpost] != "" && isset($colVille) && $ligne[$colVille] != "" && isset($colPays) && $ligne[$colPays] != ""){
                     
                        if(!valueIsInTab($pays,strtolower(trim($ligne[$colPays])))){
                           $query_creation_pays = "INSERT INTO pays (NOMPAYS) VALUES (".mysqlString($ligne[$colPays]).")";
                           $result_creation_pays = mysql_query($query_creation_pays, $connexion) or logError("CREATION PAYS-".$query_creation_pays."-".mysql_error());
                           $idPays = mysql_insert_id($connexion);
                           logAction("CREATION PAYS (idPays: ".$idPays.") AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
                           $pays[$nb_pays] = $ligne[$colPays];
                           $nb_pays++;
                        } else {
                           $query_recup_idPays = "SELECT CODEPAYS FROM pays WHERE NOMPAYS = ".mysqlString($ligne[$colPays]);
                           $result_recup_idPays = mysql_query($query_recup_idPays, $connexion) or logError("RECUP ID PAYS-".$query_recup_idPays."-".mysql_error());
                           $idPays = mysql_result($result_recup_idPays,0);
                           mysql_free_result($result_recup_idPays);
                        }
                     
                        if(!valueIsInTab($villes,$ligne[$colVille].$ligne[$colCpost])){
                           $query_creation_ville = "INSERT INTO commune (NOMCOMMUNE, CODEPAYS, CODEPOSTAL) VALUES (".mysqlString($ligne[$colVille]).", ".$idPays.", ".mysqlString($ligne[$colCpost]).")";
                           $result_creation_ville = mysql_query($query_creation_ville, $connexion) or logError("CREATION COMMUNE-".$query_creation_ville."-".mysql_error());
                           if ($result_creation_ville == true) {
                              $villes[$nb_villes] = $ligne[$colVille].$ligne[$colCpost];
                              $nb_villes++;
                              $idVille = mysql_insert_id($connexion);
                              logAction("CREATION COMMUNE (idCommune : ".$idVille.",idPays: ".$idPays.") AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
                           } else {
                              $aAjouter = 0;
                           }
                         } else {
                           $query_recup_idVille = "SELECT CODECOMMUNE FROM commune WHERE NOMCOMMUNE = ".mysqlString($ligne[$colVille])." AND CODEPOSTAL = ".mysqlString($ligne[$colCpost]);
                           $result_recup_idVille = mysql_query($query_recup_idVille, $connexion) or logError("RECUP ID COMMUNE-".$query_recup_idVille."-".mysql_error());
                           if ($result_recup_idVille == true) {
                              $idVille = mysql_result($result_recup_idVille,0);
                              mysql_free_result($result_recup_idVille);
                           } else {
                              $aAjouter = 0;
                           }
                        }
                        
                           $query_creation_structures_insert .= ", CODECOMMUNE";
                           $query_creation_structures_values .= ", $idVille";
                        
                     } else {
                        if ($aAjouter) {
                           $afficheS2 .= "<b>La situation géographique de la structure est incomplète. AJOUT ANNULE</b>";
                        }
                        $aAjouter = 0;
                     
                     }
                     
                     if ($aAjouter && isset($colType) && $ligne[$colType] != "") {
                        $query_creation_type = "INSERT INTO type_structure (NOMTYPESTRUCTURE) VALUES (".mysqlString($ligne[$colType]).")";
                        $result_creation_type = mysql_query($query_creation_type, $connexion) or logError("CREATION TYPE STRUCTURE-".$query_creation_type."-".mysql_error());
                        $types[$nb_types] = $ligne[$coltype];
                        $nb_types++;
                        $idType = mysql_insert_id($connexion);
                        logAction("CREATION TYPE STRUCTURE (idType: ".$idType.") AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
                     } else {
                     
                        $query_recup_idType = "SELECT CODETYPESTRUCTURE FROM type_structure WHERE NOMTYPESTRUCTURE = 'Générique'";
                        $result_recup_idType = mysql_query($query_recup_idType, $connexion) or logError("RECUP ID TYPE STRUCTURE-".$query_recup_idType."-".mysql_error());
                        
                        if(mysql_num_rows($result_recup_idType)) {
                           $idType = mysql_result($result_recup_idType,0);
                        } else {
                           $query_creation_type = "INSERT INTO type_structure (NOMTYPESTRUCTURE) VALUES ('Générique')";
                           $result_creation_type = mysql_query($query_creation_type, $connexion) or logError("CREATION TYPE STRUCTURE-".$query_creation_type."-".mysql_error());
                           $idType = mysql_insert_id($connexion);
                           logAction("CREATION TYPE STRUCTURE (idType: ".$idType.") AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
                        }
                        
                        mysql_free_result($result_recup_idType);
                     }
                     
                     $query_creation_structures_insert .= ", CODETYPESTRUCTURE";
                        $query_creation_structures_values .= ", $idType";
                     
                     if ($aAjouter) {
                     
                        $query_creation_structures_insert .= ") ";
                        $query_creation_structures_values .= ") ";
                        
                        $query_creation_structures = $query_creation_structures_insert.$query_creation_structures_values;
                        $result_creation_structures = mysql_query($query_creation_structures, $connexion) or logError("CREATION STRUCTURE-".$query_creation_structures_insert.$query_creation_structures_values."-".mysql_error());
                        $idStructure = mysql_insert_id($connexion);
                        
                        if ($result_creation_structures == true) {
                           logAction("CREATION STRUCTURE (idStructure: $idStructure) AJOUTEE par ".capitalise($GLOBALS['USER']['prenom'])." ".mb_strtoupper($GLOBALS['USER']['nom'])." (".$GLOBALS['USER']['login'].")");
                           $afficheS2 .= "<b>Structure ajoutée (id : $idStructure)</b>";
                        } else {
                            $afficheS2 .= "<b>Erreur lors de la création de la structure</b>";
                        }
                     
                     }
                  
                  $afficheS2 .= "</div>";
                  if ($verbose) {
                     echo $afficheS.$afficheS2;
                  }
                  
                  echo $query_creation_structures_insert.$query_creation_structures_values;

                  $count++;
               }
               
               
               }
               
               // une fois le fichier traité, on le supprime.
               fclose($ouvre);
               unlink("import/$nomfichier");
            
            
            }
         }
      }
   } else {
         
      if(isset($_SESSION)){
         include("pages/401.htm");
   	}
         
   }
   
?>